home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
ast_text
/
faqs
/
tcl-faqs
/
part1
next >
Wrap
Text File
|
1993-06-28
|
22KB
|
568 lines
Newsgroups: comp.lang.tcl,comp.answers,news.answers
Path: senator-bedfellow.mit.edu!enterpoop.mit.edu!gatech!howland.reston.ans.net!usc!sdd.hp.com!caen!malgudi.oar.net!chemabs!lvirden
From: lwv26@cas.org (Larry W. Virden)
Subject: FAQ: comp.lang.tcl Frequently Asked Questions (1/3)
(Last updated: June 16, 1993)
Message-ID: <tcl.p1_740234997@cas.org>
Followup-To: comp.lang.tcl
Summary: A regular posting of the comp.lang.tcl Frequently Asked Questions
(FAQ) and their answers. This is the first of three parts.
This part introduces Tcl and Tk and discusses documentation, etc.
Originator: lwv26@lwv26aws
Keywords: tcl, extended tcl, tk, expect
Sender: lvirden@cas.org
Supersedes: <tcl.p1_737658025@cas.org>
Reply-To: lvirden@cas.org (Larry W. Virden)
Organization: Chemical Abstracts Service
Date: Wed, 16 Jun 1993 12:50:10 GMT
Approved: news-answers-request@MIT.Edu
Expires: Wed, 28 Jul 1993 12:49:57 GMT
Lines: 545
Xref: senator-bedfellow.mit.edu comp.lang.tcl:4757 comp.answers:1024 news.answers:9490
Archive-name: tcl-faq/part1
Version: 3.3
Last-modified: June 16, 1993
For more information concerning Tcl (see "tcl-faq/part2") or
(see "tcl-faq/part3").
Index of questions:
I. Origin of the comp.lang.tcl FAQ information.
II. What is Tcl? Tk? Extended Tcl?
III. Do these packages run on my machine?
A. Unix
B. MacOS
C. MS-DOS
D. VMS
E. AmigaDOS
IV. Other than C, What languages can talk to tcl/tk?
A. Shell
B. C++
C. Modula-3
D. Eiffel
E. Other
V. Is there a bibliography of material relating to these programs?
A. The Tcl distribution
B. The Expect distribution
C. Miscellaneous other online materials
D. Published articles
E. Training courses, materials, etc.
F. Time-related seminars, conferences, sessions.
VI. Where do I report problems, bugs, or enhancements - or -
What is comp.lang.tcl?
VII. Where can I find the FAQ and who do I contact for more information
about it?
End of FAQ Index
----------------------------------------------------------------------
------------------------------
From: FAQ General information
Subject: -I- Origin of the comp.lang.tcl FAQ information.
The information in this set of FAQs comes from 3 sources. The
primary source of information is the group itself - I spend (much too
much) time each month culling through what I feel are some of the best
answers, gathering up new information on ports, etc. and adding it
here. I also gather new application information and add it as
best I can. The next most predominant source of information comes from
the authors of the various software packages. Finally, a small amount
comes from my personal experiences.
I am always on the search for folk to assist in the maintenance
of these FAQs. In fact, if you feel that you would like to coordinate
this effort, PLEASE let me know!
------------------------------
From: FAQ General information
Subject: -II- What is Tcl? Tk? Extended Tcl?
Tcl (Version 6.7) stands for ``tool command language'' and is
pronounced ``tickle.'' It is actually two things: a language and a
library. First, Tcl is a simple textual language, intended primarily
for issuing commands to interactive programs such as text editors,
debuggers, illustrators, and shells. It has a simple syntax and is
also programmable, so Tcl users can write command procedures to provide
more powerful commands than those in the built-in set.
Second, Tcl is a library package that can be embedded in
application programs. The Tcl library consists of a parser for the Tcl
language, routines to implement the Tcl built-in commands, and
procedures that allow each application to extend Tcl with additional
commands specific to that application. The application program
generates Tcl commands and passes them to the Tcl parser for
execution. Commands may be generated by reading characters from an
input source, or by associating command strings with elements of the
application's user interface, such as menu entries, buttons, or
keystrokes. When the Tcl library receives commands it parses them into
component fields and executes built-in commands directly. For commands
implemented by the application, Tcl calls back to the application to
execute the commands. In many cases commands will invoke recursive
invocations of the Tcl interpreter by passing in additional strings to
execute (procedures, looping commands, and conditional commands all
work in this way).
An application program gains three advantages by using Tcl for
its command language. First, Tcl provides a standard syntax: once
users know Tcl, they will be able to issue commands easily to any
Tcl-based application. Second, Tcl provides programmability. All a
Tcl application needs to do is to implement a few application-specific
low-level commands. Tcl provides many utility commands plus a general
programming interface for building up complex command procedures. By
using Tcl, applications need not re-implement these features. Third,
extensions to Tcl, such as the Tk toolkit, provide mechanisms for
communicating between applications by sending Tcl commands back and
forth. The common Tcl language framework makes it easier for
applications to communicate with one another.
Tk (Version 3.2) - an extension to Tcl which provides the
programmer with an interface to the X11 windowing system. Note that
many users will encounter Tk via the ``wish'' command. Wish is a
simple windowing shell which permits the user to write Tcl applications
in a prototyping environment.
Extended Tcl (tclX) (Version 6.7c) - This is an extended set of
commands for Tcl developed by Karl Lehenbauer and Mark Diekhans. Extended Tcl
is oriented towards system programming tasks, with many additional interfaces
to the Unix operating system along with other useful utilities.
------------------------------
From: FAQ General information
Subject: -III- Do these packages run on my machine?
A. Unix
Tcl runs on Suns and SunOS, DECstations running Ultrix, Dec
VAXen running Ultrix or BSD, Alphas running OSF, 386s running SCO Unix,
Xenix, Bell-Tech, Silicon Graphics running IRIX, HPs running HP-UX,
Sequent Symmetry running Dynix. It also has been reported to run fine under
AIX 3.2 and with few problems under Mt. Xino Mach.
See the porting section below for info on porting the code to VMS as well.
Tk (being based on Tcl) requires X11R4 or better as the only additional
software requirement.
B. MacOS
Contact W. Ross Brown <ross@bnr.ca> for the current status of
the Tcl MacOS port. Ross has a mailing list for discussion on that
topic.
C. MS-DOS
At least four ports are available. One unsupported port of Tcl and
Extended Tcl V6.0a, done by "Karl Lehenbauer" <Karl@NeoSoft.com>,
is available on harbor.ecn.purdue.edu:/pub/tcl/distrib/dostcl.zoo for
binaries and harbor.ecn.purdue.edu:/pub/tcl/distrib/dostcl60.zoo for
source.
A port of Tcl V6.2 was done by
"John Martin" <johnm@cajal.uoregon.edu> and is available via FTP from
cajal.uoregon.edu and harbor.ecn.purdue.edu:/pub/tcl/distrib/tcl62.dos.tar.Z .
A source code only port of Tcl V6.7, done by
PSPRENG@CIPVAX.BIOLAN.UNI-KOELN.DE (Peter Sprenger), is available from
him, on wuarchive.wustl.edu, or on
harbor.ecn.purdue.edu:/pub/tcl/distrib/tcl67dos.zip .
A port of Tcl, V6.1 ?, done by unknown, to MS-DOS Windows
V 3.1 ?, is available as binary at
harbor.ecn.purdue.edu:/pub/tcl/distrib/w_tclbin.zip and as source at
harbor.ecn.purdue.edu:/pub/tcl/distrib/w_tclsrc.zip .
D. VMS
A port of Tcl 6.2 and Tk 1.4 to VMS was done by Angel Li
<angel@flipper.rsmas.miami.edu>. The files were at
mango.rsmas.miami.edu:/pub/tcl-vms.bck.Z and
mango.rsmas.miami.edu:/pub/tk-vms.bck.Z
and were compressed with the Unix compress command. The files were VMS
BACKUP files. A recent report has it that these files are no longer
available.
A port of most of Tcl 6.7 and Tk 3.2 was done by John Kimball
<jkimball@src.honeywell.com> to VMS 5.5. The files are on:
src.honeywell.com:/pub/tcl67-tk32-on-vms55.tar.Z .
E. AmigaDOS
Karl Lehbauer <karl@sugar.NeoSoft.com> has indicated that
he started a port of Tcl 3.x to the Amiga. He has a working
version, but is no longer working on it. His version uses the
Amiga's shared libraries and implements the "send" command.
He wrote a MIDI file loader and player as well. Contact him for
further details.
------------------------------
From: FAQ General information
Subject: -IV- Other than C, what languages can talk to tcl/tk?
A. Shell
There are two standard interfaces which are shell-like. The
first is wish, which is a windowing shell like interface that is a part
of the Tk package. The second is tcl, a line command interpreter that
is part of the Extended Tcl package.
B. C++
Check out tcl++.h in Extended Tcl. Based on an original
implementation by Parag Patel, it defines a Tcl interpreter class by
which Tcl interpreters can be created as objects under C++.
Also, harbor.ecn.purdue.edu:/pub/tcl/distrib/tk3.2forC++.patch
is a patch that allows tk 3.2 main.c and other extension routines
to be compiled with a C++ compiler. Thanks to Ken Yap <ken@syd.dit.csiro.au>
for this code.
Mark Diekhans and Karl Lehenbauer have used this, in
combination with the handle facility in Extended Tcl, to build Tcl
commands around C++ classes.
The Tcl handle facility provides a way to manage table entries
that can be referenced by a textual handle from Tcl code. This is
provided for applications that need to create data structures in one
command, return a reference (i.e. pointer) to that particular data
structure and then access that data structure in other commands. An
example application is file handles.
A handle table was built containing pointers to the instances
of a class that were to be accessed from Tcl, say a class `foo_cl', and
then a "new" command defined that created an instance of that class and
returned a Tcl handle to it. The handle could then passed among Tcl
commands that accessed each member function. The handle is in effect
an explicit `this' pointer.
For example:
set obj [foo_cl::new]
foo_cl::baz $obj "Hello world"
foo_cl::delete $obj
It's not totally object-oriented, but it's still very usable.
C. Modula-3
Norman Ramsey <elan.uucp!nr> says:
A long time back, Eric Muller posted a Modula-3 interface to
the C Tcl library. I wrote down a Modula-3/Tcl interface that used
Modula-3 types rather than C types, and that used objects to build
closures for commands. I wrote part of the implementation but never
finished it. I have mailed copies to carroll@udel.edu, who asked the
question, and I will post them if there seems to be general interest.
D. Eiffel
stephan@cs.tu-berlin.de (Stephan Herrmann) says:
... [the tclish package provides] the marriage of two very different
principles by means of combining two programming languages into a
hybrid program architecture. A paper, plus sample code, is available by
ftp from ftp.dcs.gla.ac.uk:/pub/glasgow-fp/authors/Duncan_Sinclair/fumx.* .
E. Other
Duncan Sinclair has hacked into wish.c some hooks for a Tk <->
any language system, and has been using it for communication with functional
languages such as Haskell and Lazy ML.
Contact him at Duncan Sinclair <sinclair@dcs.gla.ac.uk>
for more details.
------------------------------
From: FAQ General information
Subject: -V- Is there a bibliography of material relating to these
programs?
A. The Tcl distribution
With the Tcl distribution there is a Postscript version of a Usenix
paper introducing Tcl. With the Tk distribution, there is a Postscript
version of a Usenix paper introducing Tk.
Ousterhout, J.K., (1990) ``TCL: An Embeddable Command Language'', in
the Proceedings of the 1990 Winter USENIX Conference, pp 133-146.
Ousterhout, J.K., (1991) ``An X11 Toolkit Based on the TCL Language'',
in the Proceedings of the 1991 Winter USENIX Conference, pp 105-115.
Postscript file for introductory papers on Tcl and Tk are available as
the public FTP area on sprite.berkeley.edu (Internet address
128.32.150.27). Their address is:
sprite.berkeley.edu:/tcl/tclUsenix90.ps
sprite.berkeley.edu:/tcl/tkUsenix91.ps
sprite.berkeley.edu:/tcl/tkF10.ps
(The last of these files is the contents of Figure 10 of the Tk paper)
If you have trouble retrieving the papers via FTP or printing them,
send bmiller@sprite.berkeley.edu your U.S. Mail address and he will mail
you paper copies.
B. The Expect distribution
With the Expect distribution, there are several Postscript documents
available which have been published.
1. "Curing Those Uncontrollable Fits of Interaction", Proceedings of the
Summer 1990 USENIX Conference, Anaheim, CA, June 11-15, 1990.
This paper is discussion of implementation, philosophy, and design.
It's address is:
ftp.cme.nist.gov:/pub/expect/seminal.ps.Z
2. "Using expect to Automate System Administration Tasks", Proceedings of
the 1990 USENIX Large Systems Administration Conference (LISA) IV,
Colorado Springs, CO, October 17-19, 1990.
This paper is discussion and examples, specifically aimed at system
administrators. The address of this paper is:
ftp.cme.nist.gov:/pub/expect/sysadm.ps.Z
3. "expect: Scripts for Controlling Interactive Programs", Computing
Systems, Vol. 4, No. 2, University of California Press Journals, 1991.
A comprehensive paper of example scripts. This paper's address is:
ftp.cme.nist.gov:/pub/expect/scripts.ps.Z
4. "Regression Testing and Conformance Testing Interactive Programs",
Proceedings of the Summer 1992 USENIX Conference, San Antonio, CA,
June 8-12, 1992.
This paper discusses the application of expect to the verification
of software.
This paper's address is:
ftp.cme.nist.gov:/pub/expect/regress.ps.Z
5. "Kibitz - Connecting Multiple Interactive Programs Together",
Software - Practice & Experience, John Wiley & Sons, West
Susses, England, Vol. 23, No. 5, May 1993.
This paper is a discussion of using Tcl and Expect to connect multiple
interactive programs together.
This paper's address is:
ftp.cme.nist.gov:/pub/expect/kibitz.ps.Z
C. Miscellaneous other online materials
1. The ftp address for a FrameMaker MIF file containing a Quick Reference guide
to Tcl is:
harbor.ecn.purdue.edu:/pub/tcl/docs/QuickRef.tar.Z
Many thanks to "Jeff Tranter" <Jeff.Tranter@software.mitel.com> for
contributing it.
2. PostScript versions of the man pages were provided by
"Adrian Ho" <adrianho@barkley.berkeley.edu>. The addresses for these are:
harbor.ecn.purdue.edu:/pub/tcl/docs/tcl6.3.manps.tar.Z
harbor.ecn.purdue.edu:/pub/tcl/docs/tclX6.2b.manps.tar.Z
harbor.ecn.purdue.edu:/pub/tcl/docs/tk2.1.manps.tar.Z
3. An early draft of a text book based on Tcl and Tk, written by
John Ousterhout and to be published in 1993 by Addison-Wesley is
available.
The section dealing with writing Tcl scripts is:
sprite.berkeley.edu:/tcl/book.p1.ps.Z
The section dealing with writing Tcl scripts for Tk is:
sprite.berkeley.edu:/tcl/book.p2.ps.Z
The section dealing with writing writing Tcl applications in C is:
sprite.berkeley.edu:/tcl/book.p3.ps.Z
The first two parts are about 130 pages in length and the third part is about
65 pages in length. This is ONLY a draft and is not permitted to
be redistributed.
3. A series of PostScript slides used in a tutorial on Tcl and Tk at
the 1993 X Conference are available as:
sprite.berkeley.edu:/tcl/tut.tar.Z
D. Published articles and books
1. Computer Shopper, V12 N12, page 862 had an article referencing Tickle,
the shareware package under Macintosh System 7 which is based on Tcl.
2. MacWEEK, V6 N32, page 91 had an article referencing Alpha 5.0, the
Macintosh editor which incorporates Tcl.
3. Computer Language, V9 N7, page 76 had an article referencing Tcl in
a hardware/software testing package which talks to a remote machine via
a proprietary interface card.
4. SunWorld, V5 N10, pages 95-96 had a article discussing Tcl, Tk and
expect.
5. UNIX REVIEW, V11 N4, pages 93-94, by Richard Morin. The article,
a part of "The Internet Notebook", is about Tcl, Tk, and friends.
It mentions a little about Tcl and Tk, where to find the
sources, where to find the draft of the book, and where to find the
contributed software.
6. SunExpert, V4 N3, pages 32-36, by Richard Morin. As part of Morin's
I/Opener series of articles, this is just a brief overview of Tcl and Tk.
It mentions some of the technical ideas behind Tcl and Tk, where to find
the Tcl source and mentions that the draft of the book is available on
allspice.berkeley.edu. A 'hello, world' 3 line wish script is really
all that is shown.
7. Libes, Don, "Obfuscated C and Other Mysteries", Wiley & Sons,
January 1993.
This book has a whole chapter on Tcl. Aimed at the C programmer, it
describes how to effectively use Tcl from C applications. Another
chapter is on Expect - a walk-through of some of the more interesting
code in Expect. These chapters originally appeared as separate
articles in The C Users Journal, Vol. 8, No. 7, July 1990, and Vol. 9,
No. 1, 1991. (Incidentally, the reason the book has such a peculiar
title is that it also contains explanations of the Obfuscated C Code
Contest winners.)
8. IEEE Design & Test of Computers, June 1993, by Steve Vinoski.
An article describing a system called the Remote Interactive Scan
Environment (RISE++) that marries Tcl with RPC for the purpose of
testing remote computer systems.
9. The X Journal, March-April 1993, pages 74-81, "HYPERTOOLS
A revolution in GUI applications" (listed in the TOC as "Hypertools: A GUI
revolution") by John K. Ousterhout and Lawrence A. Rowe.
Additional bibliographic references are still being sought.
E. Training courses, materials, etc.
1. There have been, in the past, seminars at Usenix and the MIT X
conference taught by John Ousterhout on Tcl and Tk. See above for the
slides from the most recent of these presentations.
2. NeoSoft Communications Services ( karl@NeoSoft.com, (713) 684-5969 )
can teach introductory and advanced Tcl courses on site or at their location
in Houston, Texas. A syllabus and pricing information are available on
request. Please contact Ellyn Mustard at (713) 684-5969 or via email to
ellyn@neosoft.com for more details.
3. Computerized Processes Unlimited ( gwl@cpu.com, (504) 889-2784 )
has a combined Tcl/Tclx reference manual for sale. It groups the commands
by chapter based on functionality and has an extensive index.
F. Time-related seminars, conferences, sessions.
1. A Tcl/Tk workshop was held June 10-11, 1993 at University of
California at Berkeley. The workshop proceedings are going to be made
available for ftp in the near future. The bibliographic references for
the articles published will be added in the near future.
2. Classes on Tcl and Tk have been held at Usenix and the MIT X
Developers Conferences in the past. The next ones that I have seen
scheduled are during the Summer Usenix in Cincinnati, OH. At least
three sessions relate in some manner to Tcl/Tk - the Unix Power Tools
(Monday) and the Tcl/Tk (Tuesday) tutorials, as well as the Unix guru
session with Dr. John Ousterhout on Tuesday night.
------------------------------
From: FAQ General information
Subject: -VI- Where do I report problems, bugs, or enhancements - or -
What is comp.lang.tcl?
There are two alternatives for reporting bugs and problems.
The first is the USENET news group news:comp.lang.tcl, an unmoderated USENET
newsgroup, created for the discussion of the Tcl programming language
and tools that embed it, such as the Tk toolkit for the X window
system, expect, and Extended Tcl. Please note that postings of source
code to comp.lang.tcl do not get archived to harbor.ecn.purdue.edu - if
you want your code to be available from the User Contributions archive
you will need to make arrangements for someone to ftp it there. See
elsewhere in the FAQ for more details on the archive site.
The second would be to report problems, suggestions, new
ideas, etc. to the author. Email to
ouster@allspice.berkeley.edu (John Ousterhout)
will get comments to the author of Tcl and Tk - for other programs, email
addresses are available either elsewhere in this part or part 3.
Note: for those USENET-deprived individuals who are thus unable
to read comp.lang.tcl, a small echoing mailing list is available.
Contact John Ousterhout (see above for email address) for details.
------------------------------
From: FAQ General information
Subject: -VII- Where can I find the FAQ and who do I contact for more
information about it?
I am going to attempt to keep a copy of this file up to date on
harbor.ecn.purdue.edu:/pub/tcl/docs/tcl-faq.p0[1-3] .
Also, I will be posting it on a regular basis to at least comp.lang.tcl,
news.answers, and comp.answers.
If you have corrections, enhancements, modifications,
clarifications, suggestions, ideas, new questions, new answers to
questions which have never been asked, or something else that I have
not covered above, contact me at lvirden@cas.org.
Many FAQs, including this one, are available on the archive
site rtfm.mit.edu in the directory pub/usenet/news/answers. The name
under which a FAQ is archived appears in the Archive-name line at the
top of the article. For example, this part of the comp.lang.tcl FAQ is
archived as tcl-faq/part1.Z . There is also a mail server from which
you can obtain a copy of the FAQ. Send an email message to
mail-server@rtfm.mit.edu with the word help in the body of the message
to find out how to use it.
Also, this FAQ is available from within gopher, from WAIS
servers such as the comp.lang.tcl.src, and probably other resources as
well. Let me know when you find the FAQ in new and unusual locations
so I can update this resource guide!
A great new resource access point for the FAQ is WorldWideWeb.
The Uniform Resource Locator id for the FAQ is:
http://www.cis.ohio-state.edu:80/hypertext/faq/usenet/tcl-faq/top.html
Be sure to check this one out!
------------------------------
End of comp.lang.tcl Frequently Asked Questions (1/3)
*****************************************************
--
:s
:s Larry W. Virden INET: lvirden@cas.org
:s Personal: 674 Falls Place, Reynoldsburg, OH 43068-1614
--
:s
:s Larry W. Virden INET: lvirden@cas.org
:s Personal: 674 Falls Place, Reynoldsburg, OH 43068-1614